package com.raccoonagents.tools.cascet2d.interfaces;

import com.raccoonagents.tools.cascet2d.model.Vector2f;
/**
 * 
 * @author Kari Kuvaja
 * This interface represents the minimum requirements for an object to be attached to a stage
 * for example a point on a screen would require these attributes.
 *
 */

public interface IAtomicStageElement {
	/**
	 * 
	 * @return the local coordinates inside the parent container
	 */
	public Vector2f getLocation();
	/**
	 * sets the location inside the parent container
	 * @param location
	 */
	public void setLocation(Vector2f location);
	/**
	 * 
	 * @param the coordinates in world(screen) 
	 */
	public Vector2f getWorldCoordinates(Vector2f localCoordinates);
	/**
	 * sets the parent for this element.
	 * @param element parent
	 */
	public void setParentElement(IRenderableStageElement element);
	/**
	 * 
	 * @return returns the parent element for this stage element
	 */
	public IRenderableStageElement getParentElement();
	
}
